/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.sistemas.be;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

/**
 *
 * @author WILLIAM
 */
@Entity
@Table(name = "sis_detalle_requerimiento")
//@NamedQueries({
//    @NamedQuery(name = "SisDetalleRequerimiento.findAll", query = "SELECT s FROM SisDetalleRequerimiento s"),
//    @NamedQuery(name = "SisDetalleRequerimiento.findByDetCodigo", query = "SELECT s FROM SisDetalleRequerimiento s WHERE s.detCodigo = :detCodigo"),
//    @NamedQuery(name = "SisDetalleRequerimiento.findBySisDescripcion", query = "SELECT s FROM SisDetalleRequerimiento s WHERE s.sisDescripcion = :sisDescripcion"),
//    @NamedQuery(name = "SisDetalleRequerimiento.findByDetObservacion", query = "SELECT s FROM SisDetalleRequerimiento s WHERE s.detObservacion = :detObservacion"),
//    @NamedQuery(name = "SisDetalleRequerimiento.findByDetEstado", query = "SELECT s FROM SisDetalleRequerimiento s WHERE s.detEstado = :detEstado")})
public class SisDetalleRequerimiento implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "det_codigo")
    private Integer detCodigo;
    @Basic(optional = false)
    @Column(name = "det_descripcion")
    private String detDescripcion;
    @Column(name = "det_observacion")
    private String detObservacion;
    @Basic(optional = false)
    @Column(name = "det_estado")
    private int detEstado;
    @Basic(optional = false)
    @Column(name = "det_fechaEvento")
    @Temporal(TemporalType.DATE)
    private Date detFechaEvento;
    @Column(name = "det_esEvento")
    private Boolean detEsevento;
    @Column(name = "det_prioridad")
    private String detPrioridad;
    @Column(name = "det_atendidopor")
    private String detAtendidoPor;
    @Basic(optional = false)
    @Column(name = "det_fecharegistro")
    @Temporal(TemporalType.DATE)
    private Date detFechaRegistro;
    @Basic(optional = false)
    @Column(name = "det_fechaatencion")
    @Temporal(TemporalType.DATE)
    private Date detFechaAtencion;
    @Column(name = "det_documento")
    private String detDocumento;
    @JoinColumn(name = "req_codigo", referencedColumnName = "req_codigo")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private SisRequerimiento reqCodigo;

    public SisDetalleRequerimiento() {
    }

    public SisDetalleRequerimiento(Integer detCodigo) {
        this.detCodigo = detCodigo;
    }

    public SisDetalleRequerimiento(Integer detCodigo, String detDescripcion, int detEstado) {
        this.detCodigo = detCodigo;
        this.detDescripcion = detDescripcion;
        this.detEstado = detEstado;
    }

    public String getDetAtendidoPor() {
        return detAtendidoPor;
    }

    public void setDetAtendidoPor(String detAtendidoPor) {
        this.detAtendidoPor = detAtendidoPor;
    }

    public String getDetPrioridad() {
        return detPrioridad;
    }

    public void setDetPrioridad(String detPrioridad) {
        this.detPrioridad = detPrioridad;
    }

    public Integer getDetCodigo() {
        return detCodigo;
    }

    public void setDetCodigo(Integer detCodigo) {
        this.detCodigo = detCodigo;
    }

    public String getDetDescripcion() {
        return detDescripcion;
    }

    public void setDetDescripcion(String detDescripcion) {
        this.detDescripcion = detDescripcion;
    }

    public String getDetObservacion() {
        return detObservacion;
    }

    public void setDetObservacion(String detObservacion) {
        this.detObservacion = detObservacion;
    }

    public int getDetEstado() {
        return detEstado;
    }

    public void setDetEstado(int detEstado) {
        this.detEstado = detEstado;
    }

    public String getDetEstadoActual(){

        String estadoActual = "";

        switch(detEstado){

            case 0: estadoActual = "Recepcionado"; break;
            case 1: estadoActual = "Por Atender"; break;
            case 2: estadoActual = "Atendido"; break;
            case 3: estadoActual = "Rechazado"; break;
        }

        return estadoActual;
    }

    public Date getDetFechaAtencion() {
        return detFechaAtencion;
    }

    public void setDetFechaAtencion(Date detFechaAtencion) {
        this.detFechaAtencion = detFechaAtencion;
    }

    public Date getDetFechaRegistro() {
        return detFechaRegistro;
    }

    public void setDetFechaRegistro(Date detFechaRegistro) {
        this.detFechaRegistro = detFechaRegistro;
    }
    
    public SisRequerimiento getReqCodigo() {
        return reqCodigo;
    }

    public void setReqCodigo(SisRequerimiento reqCodigo) {
        this.reqCodigo = reqCodigo;
    }

    public Boolean getDetEsevento() {
        return detEsevento;
    }

    public void setDetEsevento(Boolean detEsevento) {
        this.detEsevento = detEsevento;
    }

    public Date getDetFechaEvento() {
        return detFechaEvento;
    }

    public void setDetFechaEvento(Date detFechaEvento) {
        this.detFechaEvento = detFechaEvento;
    }

    public String getDetDocumento() {
        return detDocumento;
    }

    public void setDetDocumento(String detDocumento) {
        this.detDocumento = detDocumento;
    }
    
    @Override
    public int hashCode() {
        int hash = 0;
        hash += (detCodigo != null ? detCodigo.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof SisDetalleRequerimiento)) {
            return false;
        }
        SisDetalleRequerimiento other = (SisDetalleRequerimiento) object;
        if ((this.detCodigo == null && other.detCodigo != null) || (this.detCodigo != null && !this.detCodigo.equals(other.detCodigo))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "org.cip.esymons.sistemas.be.SisDetalleRequerimiento[detCodigo=" + detCodigo + "]";
    }
   

    
}
